Application patterns are frequently used to help ease the design of enterprise applications.
In mobile applications, due to the potential of disconnectivity, synchronization of the application state between the mobile device and the enterprise is the one of the most important design considerations. Synchronization patterns determine the strategy that governs synchronization between the mobile device and the enterprise.
Conventional synchronization patterns rely on the conveying of the “final state” of the application from the mobile device to the enterprise. The final state is defined in terms of data and/or objects as they exist at the mobile device, without regard to the operations that led to the final state at the mobile device. As such, the conveyed state does not contain sufficient contextual information about changes at the mobile device to provide the enterprise the ability to resolve state conflicts when they occur. Conflict resolution at the enterprise, as such, is difficult to deal with and often requires extensive coding and even human intervention.
What is needed therefore is an enhanced synchronization pattern for mobile applications that does not suffer from the limitations of conventional patterns.